package com.autorun.server.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 角色实体类
 * 
 * @author autorun
 * @version 1.0.0
 */
@Data
@TableName("roles")
public class Role {

    /**
     * 角色ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    @JsonProperty("user_id")
    private Integer userId;

    /**
     * 游戏名
     */
    private String game;

    /**
     * 设备ID (IMEI)
     */
    @TableField("device_id")
    @JsonProperty("device_id")
    private String deviceId;

    /**
     * 窗口序号
     */
    @TableField("window_id")
    @JsonProperty("window_id")
    private String windowId;

    /**
     * 角色名称
     */
    private String name;

    /**
     * 大区
     */
    private String region;

    /**
     * 等级
     */
    private Integer level;

    /**
     * 战斗力
     */
    @TableField("combat_power")
    @JsonProperty("combat_power")
    private Long combatPower;

    /**
     * 其他数据 (JSON格式)
     */
    private Map<String, Object> datas;

    /**
     * 版本号
     */
    private String version;

    /**
     * 配置ID
     */
    @TableField("config_id")
    @JsonProperty("config_id")
    private Integer configId;

    /**
     * 当前任务
     */
    @TableField("cur_task")
    @JsonProperty("cur_task")
    private String curTask;

    /**
     * 设备运行信息
     */
    private String websocket;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonProperty("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    @JsonProperty("update_time")
    private LocalDateTime updateTime;
}